package cn.amoqi.springbootrocketmq.v2.service;

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.Message;

/**
 * @Description:
 * @author: zhuiFeng
 * @date: 2021年04月17日 10:01
 */
public interface MqClient {

    boolean send(String topic, String tags, String keys, String content);

    boolean send(String topic, String content, int delayTimeLevel);

    /**
     * 发送延时消息
     *
     * @param topic          主题
     * @param tags           标签
     * @param content        内容
     * @param delayTimeLevel 延迟几倍
     * @return 是否
     */
    boolean send(String topic, String tags, String content, int delayTimeLevel);

    /**
     * 发送消息
     *
     * @param topic   主题
     * @param tags    标签
     * @param content 内容
     * @return 是否发送成功
     */
    boolean send(String topic, String tags, String content);

    /**
     * 匹配开发和生产
     *
     * @return 发送级别
     */
    String support();


    boolean send(Message message);

    DefaultMQPushConsumer createConsumer(String groupId, String topic, String subExpression) throws MQClientException;
}
